package datos;

import java.io.Serializable;
import java.lang.String;
import java.util.List;

import javax.persistence.*;

import com.sun.xml.rpc.processor.modeler.j2ee.xml.string;

/**
 * @author Andres Mejia -Fabio Giraldo
 * 
 * Entity implementation class for Entity: Automovil
 * 
 * @param placa llave primaria de la entidad
 * @param color Objeto que puede ser repetido por lo cual se crea una entidad aparte
 * @param subastas muestra la lista de suabstas a las que esta asociado el automovil
 * @param modelo Objeto que puede ser repetido por lo cual se crea una entidad aparte
 */
@Entity

public class Automovil implements Serializable 
{
	@Id
	private String placa;
	@ManyToOne
	Color color;
	@OneToMany (mappedBy ="automovil")
	List<Subasta> subastas;
	@ManyToOne
	Modelo modelo;
	
	private static final long serialVersionUID = 1L;

	
	/**
	 * Constructor de la clase 
	 **/  
	public Automovil()
	{
		super();
	}   
	
	
	/**
	 * @return placa retorna el valor de la placa.
	 */
	
	public String getPlaca() {
		return this.placa;
	}

	/**
	 * este metodo modifica el valor de la placa del automovil.
	 * @param placa
	 */
	public void setPlaca(String placa) {
		this.placa = placa;
	} 
	
	/**
	 * return color retorna el color del automovil.
	 */
	public Color getColor() {
		return color;
	}
	
	/**
	 * este metodo se realiza para modificar el color del automovil.
	 * @param color
	 */
	public void setColor(Color color) {
		this.color = color;
	}
	
	/**
	 * 
	 * @return modelo retorna el modelo del automovil.
	 */
	public Modelo getModelo() {
		return modelo;
	}
	
	/**
	 * este metodo permite modificar el modelo del automovil.
	 * @param modelo
	 */
	public void setModelo(Modelo modelo) {
		this.modelo = modelo;
	}
	
	@Override
	public int hashCode()
	{
		final int prime = 31;
		int result = 1;
		result = prime * result + ((placa == null) ? 0 : placa.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Automovil other = (Automovil) obj;
		if (placa == null) {
			if (other.placa != null)
				return false;
		} else if (!placa.equals(other.placa))
			return false;
		return true;
	}
	   
}
